package com.yuntian.mapper;

import com.github.pagehelper.Page;
import com.yuntian.Vo.admin.OrderVO;
import com.yuntian.entity.Order;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.math.BigDecimal;
import java.util.List;

@Mapper
public interface OrderMapper {
    // 插入单个订单
    void insertOrder(Order order);

    // 更新订单状态
    void updateOrderStatus(Order order);

    // 查询所有订单
    Page<Order> selectAllOrder();

    // 根据用户ID查询订单
    Page<Order> selectOrderByUserId(Long userId);


    List<OrderVO> selectOrderByUserName(String userName);

    // 根据订单ID查询订单
    Order selectOrderByOrderId(Integer orderId);


    // 删除订单
    void deleteOrder(Integer orderId);
    // 查询订单总金额
    @Select("select total_amount FROM `order` WHERE order_id = #{orderId}")
    BigDecimal getTotalAmount(Integer orderId);
    // 取消订单
    void cancel(Order order);

    // 统计订单数量
    @Select("select count(*) from `order`")
    Integer count();

}
